home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / sunrpc / rpc_pipe_fs.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.4 KB  |  57 lines

  1. #ifndef _LINUX_SUNRPC_RPC_PIPE_FS_H
  2. #define _LINUX_SUNRPC_RPC_PIPE_FS_H
  3.  
  4. #ifdef __KERNEL__
  5.  
  6. struct rpc_pipe_msg {
  7.     struct list_head list;
  8.     void *data;
  9.     size_t len;
  10.     size_t copied;
  11.     int errno;
  12. };
  13.  
  14. struct rpc_pipe_ops {
  15.     ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __user *, size_t);
  16.     ssize_t (*downcall)(struct file *, const char __user *, size_t);
  17.     void (*release_pipe)(struct inode *);
  18.     void (*destroy_msg)(struct rpc_pipe_msg *);
  19. };
  20.  
  21. struct rpc_inode {
  22.     struct inode vfs_inode;
  23.     void *private;
  24.     struct list_head pipe;
  25.     struct list_head in_upcall;
  26.     struct list_head in_downcall;
  27.     int pipelen;
  28.     int nreaders;
  29.     int nwriters;
  30.     int nkern_readwriters;
  31.     wait_queue_head_t waitq;
  32. #define RPC_PIPE_WAIT_FOR_OPEN    1
  33.     int flags;
  34.     struct rpc_pipe_ops *ops;
  35.     struct delayed_work queue_timeout;
  36. };
  37.  
  38. static inline struct rpc_inode *
  39. RPC_I(struct inode *inode)
  40. {
  41.     return container_of(inode, struct rpc_inode, vfs_inode);
  42. }
  43.  
  44. extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
  45.  
  46. extern struct dentry *rpc_mkdir(char *, struct rpc_clnt *);
  47. extern int rpc_rmdir(struct dentry *);
  48. extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *, struct rpc_pipe_ops *, int flags);
  49. extern int rpc_unlink(struct dentry *);
  50. extern struct vfsmount *rpc_get_mount(void);
  51. extern void rpc_put_mount(void);
  52. extern int register_rpc_pipefs(void);
  53. extern void unregister_rpc_pipefs(void);
  54.  
  55. #endif
  56. #endif
  57.